#ifndef LOGIN_CLIENT_H
#define LOGIN_CLIENT_H

#include <string>
using namespace std;

#include "login_auth_delegate.h"

#include "i_io_handler.h"

namespace login_client_detail
{
	class Imp;
}

class LoginClient : public IIoAttachment
{
public:

private:
	boost::shared_ptr<login_client_detail::Imp> imp_;

public:
	LoginClient(const string& userName, const string& password);
	void handle(IPackage* package, IIoHandler::Ptr ioHandler);

	void setLoginFailedDelegate(LoginAuthDelegate loginFailed);
	void setLoginSuccessDelegate(LoginAuthDelegate loginSuccessed);
};

#endif